For example, in a multiple input and multiple output (MIMO) system, a transmitter sends multiple streams by multiple transmit antennas. Assuming the number of streams in a MIMO system is N, e.g., there are at least N transmit antennas being sources of the streams and at least N receive antennas receiving the streams. The MIMO system could be simply represented with the number of the streams, that is, represented as “N×N MIMO” system.
A popular implementation of a MIMO decoder is based on a K-Best search algorithm. The main idea of this decoder is that the possibly transmitted streams are added to the overall metric in an iterative way rather than joint exhaustive search implemented in the optimal Maximum-Likelihood decoder. At each stage of the decoding process, only the K best optional paths are selected according to a predefined metric.
Performance of the K-Best search algorithm relies on an order in which the streams are added to the decoder decision metric. A right order leads to a good performance, while a wrong order can completely ruin the K-Best detection properties. Therefore, a re-ordering algorithm is introduced to choose a best stream for each stage of the K-Best search. The re-ordering can be dependent on the mutual interference between each stream and all the other streams.
According to the re-ordering algorithm, streams are selected and removed at each stage in an iterative calculation. For example, assume a real valued physical channel matrix is denoted as H, and the post-processing Signal-to-Noise-and-Interference ratio (SINR) is defined by the main diagonal entries of the matrix (G−1)i,i=(H*H)−1. The stream with the lowest SINR is selected and then removed. Thus, a new channel submatrix {tilde over (H)} is constructed where the column corresponding to the removed stream is removed. Then, the next steam is chosen from ({tilde over (G)}−1)i,i. Therefore, at each step of the reordering process a new inverse submatrix should be computed.
As the number of streams grows, the number of matrix inversions and the size of the inverted matrices grow accordingly. To complete a re-ordering process, the required number of calculating is very huge. That is, in the state of the art, the receiver's implementation, especially the K-Best re-ordering implementation, is very resource-consuming.